#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
MCP 贺语柔服务器 - 基础运算服务

实现基本的数值运算功能:
- 加法
- 减法
- 乘法
- 除法
"""

from mcp.server.fastmcp import FastMCP
from typing import Dict, Any

# 创建 MCP 服务实例
mcp = FastMCP("贺语柔运算服务器")

@mcp.tool()
def add_numbers(numbers: Dict[str, float]) -> float:
    """加法工具
    
    Args:
        numbers: 包含两个数字的字典 {'a': 数值1, 'b': 数值2}
        
    Returns:
        两个数字的和
    """
    return numbers['a'] + numbers['b']

@mcp.tool()
def subtract_numbers(numbers: Dict[str, float]) -> float:
    """减法工具
    
    Args:
        numbers: 包含两个数字的字典 {'a': 数值1, 'b': 数值2}
        
    Returns:
        两个数字的差
    """
    return numbers['a'] - numbers['b']

@mcp.tool()
def multiply_numbers(numbers: Dict[str, float]) -> float:
    """乘法工具
    
    Args:
        numbers: 包含两个数字的字典 {'a': 数值1, 'b': 数值2}
        
    Returns:
        两个数字的积
    """
    return numbers['a'] * numbers['b']

@mcp.tool()
def divide_numbers(numbers: Dict[str, float]) -> float:
    """除法工具
    
    Args:
        numbers: 包含两个数字的字典 {'a': 被除数, 'b': 除数}
        
    Returns:
        两个数字的商
    
    Raises:
        ValueError: 当除数为0时抛出异常
    """
    if numbers['b'] == 0:
        raise ValueError("除数不能为零")
    return numbers['a'] / numbers['b']

# 启动服务
if __name__ == "__main__":
    mcp.run(transport="stdio")